package es.ats.codington.festival.servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import es.ats.codington.festival.domain.Event;
import es.ats.codington.festival.services.EventService;

public class DeleteEventServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession sesion = request.getSession(false);
		if (sesion == null){
			RequestDispatcher requestDispatcher = request.getRequestDispatcher("/");
	        requestDispatcher.forward(request, response);
		}
		else{	        
	        EventService es=new EventService();
	        JFrame frame = new JFrame();
	        Icon blueIcon = new ImageIcon("yourFile.gif");
	        Object stringArray[] = { "Do It", "No Way" };
				
	        	try{
	        		
	        
					int eventId=Integer.parseInt(request.getParameter("eventid"));
					int button=JOptionPane.showOptionDialog(frame, "Delete this event?", "Select an Option",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, blueIcon, stringArray,stringArray[0]);
					
			        if(button==JOptionPane.YES_NO_OPTION){
		
							int affectedRows=es.deleteEventById(eventId);
							
							if(affectedRows == 0)
							{
								request.setAttribute("error", "Something is wrong with your data. Please, try it again in a few minits.");
								RequestDispatcher rd = request.getRequestDispatcher("jsp/error.jsp");
								rd.forward(request,response);
							}
							else
							{
								List<Event> events = new ArrayList<Event>();
								events=es.getAllEvents();
								request.setAttribute("allevents",events);
								request.setAttribute("eventsize",events.size());
								
							}
			        }
			        
			        else{
			        	
			        	List<Event> events = new ArrayList<Event>();
						events=es.getAllEvents();
						request.setAttribute("allevents",events);
						request.setAttribute("eventsize",events.size());
						
			        }
			        
			        RequestDispatcher requestDispatcher = request.getRequestDispatcher("jsp/adminEvents.jsp");
			        requestDispatcher.forward(request, response);
			        
	        	}
	        	
	        	catch (Exception e) {
					request.setAttribute("error", "Something is wrong with your data. Please, try it again in a few minutes.");
					RequestDispatcher rd = request.getRequestDispatcher("jsp/error.jsp");
					rd.forward(request,response);
				}
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//do nothing
	}
}
